Interfaces for portable electronic devices, as well as computers in general, are increasingly being enhanced by voice recognition software. This voice recognition software often enables users to interact with the portable electronic devices and computers in a more efficient manner than by punching keys in keypads or keyboards. In the case of portable electronic devices such as cell phones and personal digital assistants (PDA), these devices often have keypads that are small so voice recognition software can facilitate better interaction with the user. For cell phones, voice recognition can be used for applications such as recognition of a user's utterances of a name of a person in a cell phone's directory or recognition of utterances of a phone number to be dialed.
In general, voice enabled applications can support digit recognition, speaker dependent (trained) name recognition, speaker independent name recognition (names from a phonebook), spelling recognition for data entry, Uniform Resource Locator (URL) recognition for use in an Internet browser (recognize the active links in a page), speech-to-text for Short Message Service (SMS) messaging, speech-to-text for Instant Messaging, fill-in-the-blank recognition for database query using a browser, and command recognition for any command-and-control application.
It is desirable to test software-based products before they are commercially distributed or even before they are deployed in field tests. However, some problems in the software for target devices are often discovered only by doing field tests of the product and each cycle of field tests adds to the expense of the product. Such field tests attempt to approximate the usage environment of the product.
Software applications on portable electronic devices and computers run in coordination with physical hardware, an operating system, and other applications in addition to a user. The physical hardware, an operating system, other applications, and the user all have variability that must be tested in coordination with the software application. In particular, portable electronic devices have physical hardware that can sometimes change as quickly as software applications on the portable electronic devices.